In a distributed computing system, a plurality of servers are used to provide load balancing and/or provide low-latency points of access to nearby computer systems. For example, in a distributed storage system, data is replicated in storage clusters that are located across multiple geographical locations. In doing so, the availability of the data is increased and the network proximity of the data to client computer systems is decreased. When an atomic transaction needs to be performed across the distributed computing system, a two-phase commit protocol is typically used to ensure that the transaction is committed (or aborted) across the servers of the distributed computing system. Unfortunately, the two-phase commit protocol is a blocking protocol that prevents other transactions from being performed on the servers of the distributed computing system until a commit (or rollback) command is received. Thus, a server that is slow to respond to a commit request from a coordinating server blocks transactions from being performed on other servers who have already agreed to the transaction.